Site cover image

Site icon imageSen(Qian)’s Memo

This website is Donglin Qian (Torin Sen)’s memo, especially about machine learning papers and competitive programming.

2021-PR-[DFA]Discriminative Feature Alignment: Improving Transferability of Unsupervised Domain Adaptation by Gaussian-guided Latent Alignment

https://arxiv.org/abs/2006.12770

Pattern Recognitionという雑誌。

Introduction

Domain Adaptationで、2つの分布の距離を近づけようとするだけでは、うまく同じ特徴空間の上に写像するような変換を学ぶのは難しい。これを解決するために、Discriminative Feature Alignment(DFA)という手法を開発した。VAEのように、あるGaussian Priorに揃えるらしいSource DomainのデータをEncoderで変換したら、ガウス分布になるようにKLダイバージェンスを利用するらしい

Target DomainのデータをEncoderで変換したものをガウス分布に近づけることには効果はないらしく、代わりにEncoderで変換した表現を再度Decoderで戻したときのL1距離を見るらしい(読むとわかる)

この手法はAdversarialである、ではない両方に応用可能。

この論文の貢献

  • Unsupervised Domain Adaptationにおける新たなフレームワークの提案
  • Target Domainに対しては、表現をDecoderで復元したあとに、L1距離の最小化をする。
  • SOTAの性能を出した。

Related Works

Adversarial Domain Adaptation

敵対的なDomain Adaptationは有効で、識別器がどっちのDomainのデータをEncoderに通して得られた特徴かを知ることができる。Encoderを固定して識別器を訓練→識別器を固定してEncoder、Decoder、本筋のDNNを訓練というループを重ねていく。

Non-adversarial Domain Adaptation

敵対的ではない手法でAlignmentもできる。

  • 2つのデータセットの間の平均と共分散の差を、訓練中に埋めるようにする。
  • Maximum Mean Discrepancy 2つのドメインの重心を合わせる。
  • Source Domainで訓練した識別で、Target Domainのデータに疑似ラベルを用いてTarget Domainでの判別に使う本命の識別器を再学習する。

この論文で提案していたStepwise Adaptive Feature Norm(SAFN)はゆっくり変わっていくので、ドメインシフトがTarget Domain固有の情報のベクトルのノルムは大きいので、ノルムの変化を小さくさせる=共通の知識を学ばせたいらしい。

Auto-encoder

Encoder-Decoderモデルがよくつかわれる。Encoderで抽出したDomainに依存しない特徴を使って、識別器FFを訓練していく形。Decoderは分布があまり離れないようにするために訓練をする際にだけ使うらしい。

以下のように、Encoderから得た特徴空間の表現と、指定の特徴空間の別の表現をDecoderで復元したときにあまり遠く離れないようにするらしい。

Image in a image block

Method

問題設定

  • {XS,YS}\{X_S,Y_S\}がSource DomainDSD_Sからサンプリングされたnn個。
  • {XT,YT}\{X_T, Y_T\}はTarget DomainDTD_Tからサンプリングされたmm個。
  • 目標は、DTD_Tでの効率が良い識別器を作ること。

Encoder-Decoderモデルの利用

前述のように、Encoderで抽出した特徴が、Domainに依存しない共通の特徴であるようにしたい。これを用いて、FFで識別する。

なお、ここではEncoder、Decoderの重みは共有するという正則化をする(簡単なEncoder-Decoderモデルによくある手法)

Encoder-Decoderモデルなので、入れたサンプルとEncoder-Decoderを通し一回特徴にしてから復元したものが同じである方が望ましい。

Target Domainの特徴表現と、Source Domainの特徴表現の(つまりサンプルそのまま)との相互情報量(一方が他方からどれだけ情報をもらっているか)が大きいのが一番うれしい!

これをするためには、Source, Target両方のデータをEncoderで特徴空間にまずマッピングする。このマッピングの際、計算するミニバッチのデータの特徴空間でのマッピングしたときの分布が、ガウス分布と似るようにKLダイバージェンスの制約をかける

そして、数学的には、ガウス分布にうまく似れば似るほど、相互情報量も大きくなるらしい

証明

共有情報量はI(XS;ZT)=H(XS)H(XSZT)I(X_S;Z_T) = H(X_S) - H(X_S|Z_T)であり、ソースのエントロピーH(XS)H(X_S)は定数なので、H(XSZT)H(X_S|Z_T)つまりTarget Domainの潜在表現ZTZ_Tが与えられたときの、XSX_SSource Domainのデータの条件付エントロピーを最小化することになる

これは、ZTZ_TがうまくXSX_Sの情報をうまく表現している必要がある。この時、ガウス分布に近い形でZTZ_Tが整列したら、同じ分散を持つ分布のうち、ガウス分布は最大のエントロピーを持つ分布という性質がある。

つまりもっともランダムな分布で情報を持つものである。これで保持するなら、最も多くの情報を持つことができるようになる

ガウス分布は一番効率よく情報を貯蔵できる、ということであるが、実際の相互情報量の最大化は以下のようなことを目指す。(条件付エントロピーの定義で展開)

maxθI(XS;XT)=maxθH(XSZT)=maxθEXS,ZT[logp(XSZT;θ)]\max_\theta I(X_S;X_T) = \max_\theta -H(X_S|Z_T) = \max_\theta \mathbb{E}_{X_S,Z_T} [\log p(X_S|Z_T;\theta)]

特徴空間でZS,ZNZ_S,Z_Nがだいたい同じならば、それはDecoderにかけたときのX^SX^N\hat{X}_S \approx \hat{X}_Nとなる。

なので、Decoderで変換した際の損失の最小化は以下のようになる。ここで、EncoderGGとDecoderDDは同じパラメタを共有していることに注意。

minθEX^S,X^T[L1(X^S,X^T)]=minθEZN,XT[L1(Dθ(ZN)),Dθ(Gθ(XT))]\min_\theta \mathbb{E}_{\hat{X}_S, \hat{X}_T} [L_1(\hat{X}_S, \hat{X}_T)] = \min_\theta \mathbb{E}_{Z_N, X_T} [L_1(D_\theta(Z_N)), D_\theta(G_\theta(X_T))]

Decoderの構造

基本的に、Pooling以外の層はσi(Wix+bi)\sigma_i (W_i \mathbf{x} + \mathbf{b}_i)のように書くことができる。

  • 畳み込み これは疎行列の演算として書けるので、WTW^Tを掛けておく転置畳み込みでEncoderとDecoderで同じパラメタを共有して復元、が可能。
  • Max Unpooling これは破壊的な情報の抽出なので厳密にはできないが、最大値をとるところ以外は0に設定するというやり方でできる。今回はこのようなやり方でもうまくいく
  • Average Unpooling これは平均値ですべて埋めることにしている。
  • 非線形性 非線形性で抽出された特徴のかなりの部分は保持できているらしいので特段気にしなくてよかったらしい。今回の実験ではReLUを使った。